Шаг 46 - Организация цикла и LOOP.

Загрузить проект

В шаге Шаг 13 - Организация цикла. мы уже посмотрели как можно организовать цикл по счетчику. Есть более простой способ организации цикла используя команду LOOP это команда выглядит так

LOOP метка

Она будет переводить нас на указанную метку до тех пор пока регистр CX не станет равный нулю. Эта способность и позволяет нам организовать цикл. Смотрим пример.

MODEL SMALL
STACK 256
DATASEG
	str1 DB 'LOOP $'
CODESEG
Start:
	
	mov ax,@data 		; установка в ds адpеса
	mov ds,ax 		; сегмента данных
	mov cl,3			; настройка счетчика
	mov dx,OFFSET str1 	; адрес строки
WriteLoop:	
	CALL WriteStr
loop WriteLoop
	         
Exit:
	CALL ExitProgramm 

INCLUDE  function.asm 

End Start

У нас 3 раза должны быть показана строка, в самом начале мы задаем количество циклов в регистре CL.

mov cl,3		; настройка счетчика

В тот момент кода программа подойдет к LOOP вы увидите направления в отладчике

46_1.gif (2671 b)

А сразу после команды ( тут нужна клавиша F7 - Trace Info) регистр CX будет уменьшен на единицу.

46_2.gif (5606 b)

Вот так оно и работает. Дошли до LOOP, если регистр CX не ноль то перешли по метке и уменьшили его, а как только он 0 пошли дальше.

Hosted by uCoz